 //有一个长度为 n 的非降序数组，比如[1, 2, 3, 4, 5] ，将它进行旋转，即把一个数组最开始的若干个元素搬到数
//组的末尾，变成一个旋转数组，比如变成了[3, 4, 5, 1, 2] ，或者[4, 5, 1, 2, 3] 这样的。请问，给定这样一个旋转数
//组，求数组中的最小值
//注意：非降序就是升序，即旋转数组是由一个升序的数组旋转过来的。
int minNumberInRotateArray(int* rotateArray, int rotateArrayLen) 
{
	int left, right, mid;
	left = 0;
	right = rotateArrayLen - 1;
	if (rotateArray[right] > rotateArray[left])
		return rotateArray[0];//说明依然为升序数组
	while (left < right) {
		mid = left + (right - left >> 1);
		if (rotateArray[mid] > rotateArray[right])
			left = mid + 1;
		else if (rotateArray[mid] == rotateArray[right])
			right--;
		else
			right = mid;
	}
	return rotateArray[left];
}